Passed
Pull Request — master (#2)
by André
01:18
created

check.js ➔ ... ➔ ???   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
c 0
b 0
f 0
nc 1
dl 0
loc 4
rs 10
nop 2
1
'use strict'
2
3
module.exports = (input, callback) => {
4
	const mqtt = require('mqtt')
5
	const validate = require('./validate')
6
	const configuration = require('./configuration')
7
	let error = null
8
	let output = null
9
10
	validate.configuration(input, (validatedInput, thrownError) => {
11
		input = validatedInput
12
		error = thrownError
13
	})
14
15
	// Send MQTT
16
	if ( !error ) {
17
		let configurationMqtt = configuration.mqtt(input)
18
		let client = mqtt.connect(input.source.url, configurationMqtt)
19
		let version = null
20
21
		client.on('connect', () => {
22
			client.subscribe(input.source.prefix, (errorConnection) => {
23
				if ( !errorConnection ) {
24
					client.publish(input.source.topic, input.params.payload, {
25
						qos: input.params.qos,
26
						retain: false
27
					})
28
				} else {
29
					error = errorConnection
30
				}
31
			})
32
		})
33
		client.on('message', (topic, message) => {
34
			version = message.toString()
35
			client.end()
36
		})
37
38
39
40
		output = [
41
			{'ref': version}
42
		]
43
	}
44
45
46
	callback(error, output)
47
}
48